home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 4: GNU Archives / Linux Cubed Series 4 - GNU Archives.iso / gnu / glibc-1.09 / glibc-1 / glibc-1.09.1 / configure.in < prev    next >
Encoding:
Text File  |  1994-08-26  |  15.7 KB  |  582 lines

  1. dnl Autoconf sets the quotes to [ and ], which hoses shell commands.
  2. dnl We get rid of the quotes altogether, and turn them on for AC_*.
  3. changequote(,)dnl
  4. #! /bin/sh
  5.  
  6. # Configuration script for the GNU C Library.
  7. dnl You can ignore the following line if you are reading this sentence.
  8. # DO NOT EDIT!  This script is generated from configure.in; edit that instead.
  9.  
  10. # Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
  11. # This file is part of the GNU C Library.
  12.  
  13. # The GNU C Library is free software; you can redistribute it and/or
  14. # modify it under the terms of the GNU Library General Public License as
  15. # published by the Free Software Foundation; either version 2 of the
  16. # License, or (at your option) any later version.
  17.  
  18. # The GNU C Library is distributed in the hope that it will be useful,
  19. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  20. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  21. # Library General Public License for more details.
  22.  
  23. # You should have received a copy of the GNU Library General Public
  24. # License along with the GNU C Library; see the file COPYING.LIB.  If
  25. # not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  26. # Cambridge, MA 02139, USA.
  27.  
  28. #
  29. #    Configure the GNU C Library.
  30. #
  31.  
  32. prog="`basename $0`"
  33.  
  34. # All the standard GNU configure options are accepted but only
  35. # --nfp, --with-gnu-ld, and --with-gnu-as are meaningful.
  36. nfp=
  37. gnu_ld=
  38. gnu_as=
  39. prefix=
  40. exec_prefix=
  41. verbose=
  42.  
  43. next=
  44. lose=
  45. for arg in $*; do
  46.   if [ x$next != x ]; then
  47.     eval "$next=\$arg"
  48.     next=
  49.   else
  50.     case $arg in
  51.     -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=* | --s=*)
  52.        srcdir=`echo $arg | sed 's/-*s[a-z]*=//'`
  53.        ;;
  54.     -srcdir | --srcdir | --srcdi | --srcd | --src | --sr | --s)
  55.        next=srcdir
  56.        ;;
  57.     -target | --target | --targe | --targ | --tar | --ta | --t)
  58.        next=target
  59.        ;;
  60.     -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
  61.        target=`echo $arg | sed 's/-*t[a-z]*=//'`
  62.        ;; 
  63.  
  64.     -with-gnu-ld | --with-gnu-ld | --with-gnu-l)
  65.        gnu_ld=--with-gnu-ld
  66.        ;;
  67.  
  68.     -gas | --gas | --ga | --g | -with-gnu-as | --with-gnu-as | -with-gnu-a)
  69.        gnu_as=--with-gnu-as
  70.        ;;
  71.  
  72.     -nfp | --nfp | --nf | --n)
  73.        nfp=--nfp
  74.        ;;
  75.  
  76.     -with-* | --with-*)
  77.       # For `--with-foo=bar', do "with_foo='bar'".
  78.       # For `--with-fnord', do "with_fnord=yes".
  79.       # These variables may be examined by sysdep configure fragments.
  80.       eval `echo "$arg" | sed '{s/^-*//;s/-/_/g
  81. s/^\([^=]*\)=\(.*\)$/\1='\''\2'\''/;s/^\([^=]*\)$/\1=yes/;}'`
  82.       ;;
  83.  
  84.     -x | --x)
  85.       ;; # ignored
  86.  
  87.     # For backward compatibility, also recognize exact --exec_prefix.
  88.     -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* | --exe=* | --ex=* | --e=*)
  89.        exec_prefix=`echo $arg | sed 's/[-a-z_]*=//'`
  90.        ;;
  91.     -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e)
  92.        next=exec_prefix
  93.        ;;
  94.  
  95.     -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
  96.        prefix=`echo $arg | sed 's/[-a-z_]*=//'`
  97.        ;;
  98.     -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
  99.        next=prefix
  100.        ;;
  101.  
  102.     -v | -verbose | --verbose | --verbos | --verbo | --verb | --ver | --ve | --v)
  103.       # Autoconf-generated code below will test this.
  104.       verbose=yes
  105.       ;;
  106.  
  107.     -*)
  108.        echo "Invalid option \`$arg'" 1>&2
  109.        lose=yes
  110.        ;;
  111.     *)
  112.        if [ ! "$target" ]; then
  113.      target=$arg
  114.        else
  115.      lose=yes
  116.        fi
  117.        ;;
  118.     esac
  119.   fi
  120. done
  121.  
  122. # NEXT will be set iff we have seen an option that wants an arg, but no arg.
  123. if [ "$next" ]; then
  124.   echo "$0: the \`--${next}' option requires an argument" >&2
  125.   lose=yes
  126. fi
  127.  
  128. dnl This deals with setting srcdir if it needs to be set.
  129. changequote([,])
  130. AC_PREPARE(features.h)
  131. AC_LANG_C
  132. changequote(,)
  133.  
  134. # Decanonicalize srcdir so we can tell when we are configuring in srcdir.
  135. if [ "`(cd ${srcdir}; pwd)`" = "`pwd`" ]; then
  136.   srcdir=.
  137. fi
  138.  
  139. if [ ! "$target" ]; then
  140.   target=`$srcdir/config.guess`
  141.   test -n "$target" && echo "No target given; guessing target is ${target}."
  142. fi
  143.  
  144. if [ "$lose" = yes -o ! "$target" ]; then
  145.   echo "\
  146. Usage: $prog [--srcdir=DIR] [--prefix=DIR] [--exec-prefix=DIR]
  147.          [--nfp] [--with-gnu-ld] [--with-gnu-as] TARGET" >&2
  148.   if [ -r config.status ]; then
  149.     cat config.status >&2
  150.   fi
  151.   exit 1
  152. fi
  153.  
  154. # Done parsing the arguments.
  155.  
  156. # This will get text that should go into config.make.
  157. config_vars=
  158.  
  159. # Check for a --with-gmp argument and set gmp-srcdir in config.make.
  160. case "$with_gmp" in
  161. yes) echo "$prog: --with-gmp requires an argument; use --with-gmp=DIRECTORY"
  162.      exit 1 ;;
  163. '') ;;
  164. *) config_vars="$config_vars
  165. gmp-srcdir = $with_gmp" ;;
  166. esac
  167.  
  168. # Canonicalize the configuration name.
  169. config=`$srcdir/config.sub $target`
  170. if [ ! "$config" ]; then
  171.   # config.sub has written an error message.
  172.   exit 1
  173. fi
  174.  
  175. sysdep_dir=$srcdir/sysdeps
  176.  
  177. # machine-vendor-os
  178. eval "`echo $config | \
  179.        sed 's/^\(.*\)-\(.*\)-\(.*\)$/\
  180. config_machine=\1 config_vendor=\2 config_os=\3/'`"
  181.  
  182. # We keep the original values in `$config_*' and never modify them, so we
  183. # can write them unchanged into config.make.  Everything else uses
  184. # $machine, $vendor, and $os, and changes them whenever convenient.
  185. machine=$config_machine
  186. vendor=$config_vendor
  187. os=$config_os
  188.  
  189. # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
  190. os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
  191.  
  192. # Expand the configuration machine name into a subdirectory by architecture
  193. # type and particular chip.
  194. case "$machine" in
  195. i[345]86)
  196.   machine=i386/$machine ;;
  197. sparc[6789])
  198.   machine=sparc/$machine ;;
  199. m68k)
  200.   machine=m68k/m68020 ;;
  201. m680?0)
  202.   machine=m68k/$machine ;;
  203. m88k)
  204.   machine=m88k/m88100 ;;
  205. m88???)
  206.   machine=m88k/$machine ;;
  207. mips|r2000)
  208.   machine=mips/r3000 ;;
  209. r[34]000)
  210.   machine=mips/$machine ;;
  211. esac
  212.  
  213. case "$os" in
  214. gnu*)
  215.   base_os=mach/hurd ;;
  216. netbsd* | 386bsd*)
  217.   base_os=unix/bsd/bsd4.4 ;;
  218. osf1* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
  219.   base_os=unix/bsd ;;
  220. linux* | sysv* | isc* | esix* | sco* | minix* | irix4*)
  221.   base_os=unix/sysv ;;
  222. solaris[2-9]*)
  223.   base_os=unix/sysv/sysv4 ;;
  224. none)
  225.   base_os=standalone ;;
  226. esac
  227.  
  228. case "$os:$base_os" in
  229. gnu* | linux* | bsd4.4* | *:bsd4.4)
  230.   gnu_ld=--with-gnu-ld
  231.   gnu_as=--with-gnu-as
  232. esac
  233.  
  234. # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
  235. tail=$os
  236. ostry=$os
  237. while o=`echo $tail | sed 's/\.[^.]*$//'`; [ $o != $tail ]; do
  238.   ostry="$ostry /$o"
  239.   tail=$o
  240. done  
  241. o=`echo $tail | sed 's/[0-9]*$//'`
  242. if [ $o != $tail ]; then
  243.   ostry="$ostry /$o"
  244. fi
  245.  
  246. # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
  247. base=
  248. tail=$base_os
  249. while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; [ "$b" ]; do
  250.   set $b
  251.   base="$base /$1"
  252.   tail="$2"
  253. done
  254.  
  255. # For sparc/sparc9, try sparc/sparc9 and then sparc.
  256. mach=
  257. tail=$machine
  258. while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; [ "$m" ]; do
  259.   set $m
  260.   mach="$mach /$1"
  261.   tail="$2"
  262. done
  263.  
  264. # Find what sysdep directories exist.
  265. sysnames=
  266. for b in $base ''; do
  267.   for v in /$vendor ''; do
  268.     for o in /$ostry ''; do
  269.       for m in $mach ''; do
  270.         if [ -d $sysdep_dir$b$v$o$m ]; then
  271.           sysnames="$sysnames $b$v$o$m"
  272.       [ "$o" -o "$b" ] && os_used=t
  273.       [ "$m" ] && machine_used=t
  274.     fi
  275.       done
  276.     done
  277.   done
  278. done
  279.  
  280. if [ ! "$os_used" -a "$os" != none ]; then
  281.   echo Operating system $os is not supported. >&2
  282.   exit 1
  283. fi
  284. if [ ! "$machine_used" -a "$machine" != none ]; then
  285.   echo The $machine is not supported. >&2
  286.   exit 1
  287. fi
  288.  
  289. # We have now validated the configuration.
  290.  
  291. PWD=`pwd`
  292. echo Configuring the GNU C library in $PWD
  293. echo on `(hostname || uname -n) 2>/dev/null | sed 1q` for ${config}.
  294.  
  295. # Remove the leading slashes.
  296. sysnames="`echo $sysnames | sed -e 's@^/@@' -e 's@ /@ @g'`"
  297.  
  298. # Prepend the machine's FPU directory unless --nfp.
  299. if [ ! "$nfp" ]; then
  300.   fpu_dirs=
  301.   for m in $mach; do
  302.     if [ -d $sysdep_dir$m/fpu ]; then
  303.       fpu_dirs="$fpu_dirs $m/fpu"
  304.     fi
  305.   done
  306.   sysnames="`echo $fpu_dirs | sed -e 's,^/,,' -e 's, /,,g'` $sysnames"
  307. fi
  308.  
  309. # Expand the list of system names into a full list of directories
  310. # from each element's parent name and Implies file (if present).
  311. set $sysnames
  312. while [ $# -gt 0 ]; do
  313.   name=$1
  314.   shift
  315.  
  316.   if [ -f $sysdep_dir/$name/Implies ]; then
  317.     # Collect more names from the `Implies' file (removing comments).
  318.     implied="`sed 's/#.*$//' < $sysdep_dir/$name/Implies`"
  319.     for x in $implied; do
  320.       test -d $sysdep_dir/$x || echo "Warning: $name implies nonexistent $x">&2
  321.     done
  322.   else
  323.     implied=
  324.   fi
  325.  
  326.   # Add NAME to the list of names.
  327.   names="$names $name"
  328.  
  329.   # Find the parent of NAME, using the empty string if it has none.
  330.   parent="`echo $name | sed -n -e '/\//!q' -e 's=/[^/]*$==p'`"
  331.  
  332.   # Add the names implied by NAME, and NAME's parent (if it has one), to
  333.   # the list of names to be processed (the argument list).  We prepend the
  334.   # implied names to the list and append the parent.  We want implied
  335.   # directories to come before further directories inferred from the
  336.   # configuration components; this ensures that for sysv4, unix/common
  337.   # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
  338.   # after sysv4).
  339.   sysnames="`echo $implied $* $parent`"
  340.   if [ "$sysnames" != "" ]; then
  341.     set $sysnames
  342.   fi
  343. done
  344.  
  345. # Add the default directories.
  346. names="$names generic stub"
  347.  
  348. # Now uniquize the list.
  349. seen=
  350. sysnames=
  351. for name in $names; do
  352.   if echo "$seen" | fgrep -x $name >/dev/null; then
  353.     # Already in the list.
  354.     true;
  355.   else
  356.     # A new one.
  357.     if [ "$seen" = "" ]; then
  358.       seen="$name" sysnames="$name"
  359.     else
  360.       seen="$seen
  361. $name"
  362.       sysnames="$sysnames $name"
  363.     fi
  364.   fi
  365. done
  366.  
  367. echo Using system-dependent files from directories:
  368. for dir in $sysnames; do echo "    $dir"; done
  369.  
  370. changequote([,])dnl The world is now safe for m4, and unsafe for shell.
  371. dnl Be sure to add each macro used here to aclocal.m4 (which see).
  372.  
  373. AC_PROG_INSTALL
  374. [if [ "$INSTALL" = "${srcdir}/install.sh" ]; then
  375.   # The makefiles need to use a different form to find it in $srcdir.
  376.   INSTALL='$(..)./install.sh'
  377. fi]
  378. AC_PROG_RANLIB
  379.  
  380. AC_PROG_CC
  381. AC_PROG_CPP
  382.  
  383. echo checking for signed size_t type
  384. echo '#include <stddef.h>
  385. FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
  386. eval "$CPP conftest.c 2>/dev/null" \
  387. | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null \
  388. || {
  389.   dnl Do this by hand instead of AC_DEFINE so we can use -U to avoid warnings.
  390.   DEFS="$DEFS -U__SIZE_TYPE__ -D__SIZE_TYPE__=unsigned"
  391.   (echo '#undef __SIZE_TYPE__';
  392.    echo '#define __SIZE_TYPE__ unsigned') >> confdefs.h
  393.   test -n "$verbose" && echo '    using unsigned int for size_t'
  394. }
  395. rm -f conftest*
  396.  
  397. AC_COMPILE_CHECK([libc-friendly stddef.h],
  398. [#define __need_size_t
  399. #define __need_wchar_t
  400. #include <stddef.h>
  401. #define __need_NULL
  402. #include <stddef.h>], [size_t size; wchar_t wchar;
  403. #ifdef offsetof
  404. #error stddef.h ignored __need_*
  405. #endif
  406. if (&size == NULL || &wchar == NULL) abort ();],
  407. [config_vars="$config_vars
  408. stddef.h = # The installed <stddef.h> seems to be libc-friendly."
  409. test -n "$verbose" && echo '    installed stddef.h looks friendly'])
  410.  
  411. changequote(,)dnl The world is again safe for shell scripts.
  412.  
  413. echo 'checking for need to use -P to assemble .S files'
  414. cat > conftest.S <<EOF
  415. #include "confdefs.h"
  416. /* Nothing whatsoever.  */
  417. EOF
  418. ${CC-cc} $CFLAGS -c conftest.S 2>/dev/null || {
  419.   config_vars="$config_vars
  420. asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
  421.   test -n "$verbose" && echo '    using -P flag'
  422. }
  423. rm -f conftest*
  424.  
  425. # Iterate over all the sysdep directories we will use, running their
  426. # configure fragments, and looking for a uname implementation.
  427. uname=
  428. for dir in $sysnames; do
  429.   if test -r $sysdep_dir/$dir/configure; then
  430.     echo running configure fragment for $dir
  431.     . $sysdep_dir/$dir/configure
  432.   fi
  433.   test ! "$uname" && \
  434.   test -r $sysdep_dir/$dir/uname.c -o -r $sysdep_dir/$dir/uname.S && uname=$dir
  435. done
  436.  
  437. # If we will use the generic uname implementation, we must figure out what
  438. # it will say by examining the system, and write the results in config-name.h.
  439. if [ "$uname" = generic ]; then
  440.  
  441.   echo trying to guess OS release and version for uname
  442.  
  443.   kernel_release=
  444.   kernel_version=
  445.  
  446.   if [ ! "$release" -o ! "$version" ]; then
  447.     if [ -r /vmunix ]; then
  448.       kernel_id=`strings /vmunix | grep UNIX`
  449.     elif [ -r /dynix ]; then
  450.       kernel_id=`strings /dynix | grep DYNIX`
  451.     else
  452.       kernel_id=
  453.     fi
  454.     if [ "$kernel_id" ]; then
  455.       kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
  456.       kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
  457.     fi
  458.   fi
  459.  
  460.   sysname=`echo $os | sed 's/[0-9.]*$//'`
  461.   if [ $sysname != $os ]; then
  462.     config_release=`echo $os | sed s/$sysname//`
  463.   fi
  464.  
  465.   if [ "$release" ]; then
  466.     # All is well.
  467.     true
  468.   elif [ x`echo "$config_release" | sed "s/^$kernel_release//"` \
  469.      != x$config_release ]; then
  470.     # The configuration release is a substring of the kernel release.
  471.     release=$kernel_release
  472.   elif [ x$config_release != x ]; then
  473.     release=$config_release
  474.   elif [ x$kernel_release != x ]; then
  475.     release=$kernel_release
  476.   else
  477.     cat <<END
  478. I don't know what release of $sysname you are using.  Please enter the
  479. release number now.  This information is used only for the \`uname' function,
  480. so it is not critical.
  481. END
  482.     read release
  483.     if [ ! "$release" ]; then
  484.       release=unknown
  485.     fi
  486.   fi
  487.  
  488.   if [ "$version" ]; then
  489.     # All is well.
  490.     true
  491.   elif [ ! "$kernel_version" ]; then
  492.     cat <<END
  493. I don't know what version of $sysname $release you are using.  Please enter
  494. the version number now.  This information is used only for the uname
  495. function, so it is not critical.
  496. END
  497.     read version
  498.     if [ ! "$version" ]; then
  499.       version=unknown
  500.     fi
  501.   else
  502.     version=$kernel_version
  503.   fi
  504.  
  505.   cat > config-name.h <<END
  506. /* This file was generated automatically by configure.  Do not edit.
  507.    This is used by the generic uname function.  */
  508. #define UNAME_SYSNAME "${sysname}"
  509. #define UNAME_RELEASE "${release}"
  510. #define UNAME_VERSION "${version}"
  511. #define UNAME_MACHINE "${config_machine}-${config_vendor}"
  512. END
  513.  
  514.   system_name="$sysname $release version $version on $vendor $machine"
  515. else
  516.   # Not generic uname.  We don't need config-name.h at all.
  517.   system_name=$config
  518. fi
  519.  
  520. if [ "$gnu_ld" ]; then
  521.   DEFS="$DEFS -DHAVE_GNU_LD"
  522. fi
  523. if [ "$gnu_as" ]; then
  524.   DEFS="$DEFS -DHAVE_GNU_AS"
  525. fi
  526.  
  527. (
  528.   echo '# This file was generated automatically by configure.  Do not edit.'
  529.   echo '# Put configuration parameters in configparms instead.'
  530.   echo "config-machine = ${config_machine}"
  531.   echo "config-vendor = ${config_vendor}"
  532.   echo "config-os = ${config_os}"
  533.   echo "config-sysdirs = ${sysnames}"
  534.   if [ "$prefix" ]; then
  535.     echo "prefix = ${prefix}"
  536.   fi
  537.   if [ "$exec_prefix" ]; then
  538.     echo "exec_prefix = ${exec_prefix}"
  539.   fi
  540.   echo "config-defines = ${DEFS}"
  541.   for var in INSTALL INSTALL_PROGRAM INSTALL_DATA RANLIB; do
  542.     eval "echo \"${var} = \${$var}\""
  543.   done
  544.   echo "$config_vars"
  545. ) > config.make
  546. echo "Wrote config.make in $PWD."
  547.  
  548. if [ $srcdir != . ]; then
  549.   if [ $srcdir = .. ]; then
  550.     cwd=`pwd`
  551.     objdir=`basename $cwd`
  552.   else
  553.     objdir=`pwd`
  554.   fi
  555.   cat > Makefile <<END
  556. # This file was generated automatically by configure.  Do not edit.
  557. srcdir = $srcdir
  558.  
  559. all .DEFAULT:
  560.     \$(MAKE) -C \$(srcdir) objdir=\`pwd\` \$@
  561. END
  562.  
  563. echo "Wrote Makefile in $PWD."
  564. fi
  565.  
  566. cat > config.status <<END
  567. #!/bin/sh
  568. # This file was generated automatically by configure.  Do not edit.
  569. # The GNU C library was configured in $PWD for
  570. # $system_name as follows:
  571. release=$release version=$version $0 $configure_args \$*
  572. END
  573. chmod a+x config.status
  574. echo "Wrote config.status in $PWD."
  575.  
  576. exit 0
  577. dnl This gets rid of the random stuff autoconf has stuffed in weird places.
  578. divert(-1)dnl AC_This is here so I can search for `AC_' to find the frobs.
  579. dnl Local Variables:
  580. dnl compile-command: "autoconf"
  581. dnl End:
  582.